package com.amado.course41Annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;


/**
 * 查验注解
 */
//目标：用到属性、字段上,类，包，方法，构造函数（方法）注解等上面，（限定注解的使用范围）
//@Target({FIELD})
@Target({FIELD})
//指示注释类型的注释要保留多久（限定它的使用环境）
// SOURCE,CLASS,RUNTIME
@Retention(RUNTIME)
//可以继承类上的注解，可选
@Inherited
//固定选项，自定义注解都要加
@Documented
public @interface S02ValidStringFeild {
    /**
     * 最大长度
     */
    int maxLength() default -1;

    /**
     * 长度
     */
    int length() default -1;

    /**
     * 最大值
     */
    int maxValue() default -1;

    /**
     * 描述
     */
    String desc() default "";

}